package mysql8学习.初级.第12章_MySQL数据类型精讲;

public class G2_TEXT文本 {
}

/**
 * TEXT类型
 * 在MySQL中，TEXT用来保存文本类型的字符串，总共包含4种类型，
 *      分别为TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT 类型。
 * 在向TEXT类型的字段保存和查询数据时，系统自动按照实际长度存储，
 *      不需要预先定义长度。这一点和 VARCHAR类型相同。
 * 每种TEXT类型保存的数据长度和所占用的存储空间不同，如下：
 *
 * | 文本字符串类型    | 特点              | 长度   | 长度范围                       | 占用的存储空间 |
 * | -------------- | ----------------- | ----  | --------------------------   | -------------- |
 * | TINYTEXT       | 小文本、可变长度     |  L    | 0 <= L <= 255                | L + 2 个字节   |
 * | TEXT           | 文本、可变长度      |  L     | 0 <= L <= 65535              | L + 2 个字节   |
 * | MEDIUMTEXT     | 中等文本、可变长度   |  L    | 0 <= L <= 16777215            | L + 3 个字节   |
 * | LONGTEXT       | 大文本、可变长度     |  L    | 0 <= L<= 4294967295（相当于4GB）| L + 4 个字节   |
 *
 * 由于实际存储的长度不确定，MySQL 不允许 TEXT 类型的字段做主键。
 * 遇到这种情况，你只能采用 CHAR(M)，或者 VARCHAR(M)
 *
 * 经验：
 * TEXT文本类型，可以存比较大的文本段，搜索速度稍慢，因此如果不是特别大的内容，建议使用CHAR，VARCHAR来代替。
 * 还有TEXT类型不用加默认值，加了也没用。而且text和blob类型的数据删除后容易导致“空洞”，
 * 使得文件碎片比较多，所以频繁使用的表不建议包含TEXT类型字段，"建议单独分出去，单独用一个表。"
 *
 */
